package com.vis.mybatisflex.config;

import com.alibaba.fastjson2.JSON;
import com.alibaba.fastjson2.JSONWriter;
import jakarta.annotation.PostConstruct;
import lombok.extern.slf4j.Slf4j;
import org.springframework.context.annotation.Configuration;


@Slf4j
@Configuration
public class Fastjson2GlobalConfig {

    @PostConstruct
    public void init() {
        log.info("配置 Fastjson2 全局默认序列化行为...");

        // 设置全局默认的序列化特性
        JSON.config(
                JSONWriter.Feature.WriteMapNullValue     // 输出null字段
//                JSONWriter.Feature.WriteNullListAsEmpty,   // 空List输出为[]
//                JSONWriter.Feature.WriteNullStringAsEmpty, // 空String输出为""
//                JSONWriter.Feature.WriteNullNumberAsZero,  // 空Number输出为0
//                JSONWriter.Feature.WriteNullBooleanAsFalse, // 空Boolean输出为false
//                JSONWriter.Feature.WriteEnumsUsingName,    // 枚举使用名称
//                JSONWriter.Feature.PrettyFormat            // 美化输出（可选）
        );

        log.info("Fastjson2 全局配置完成，所有 toJSONString 方法将输出空值字段");
    }
}